.TH CRDA 8 "23 January 2009" "crda" "Linux"
.SH NAME
crda \- send to the kernel a wireless regulatory domain for a given ISO / IEC 3166 alpha2
.SH SYNOPSIS

.ad l
.in +8
.ti -8
.B crda

.ad l
.in +8
.ti -8

.SS
.SH Description
.B crda
is the Linux wireless central regulatory domain agent.
.B crda
is intended to be used by
.B udev
scripts and should not be run manually unless debugging udev
scripts.
.B crda
is triggered to run by the kernel by sending a
.B udev
event upon a new regulatory domain change. Regulatory domain
changes are triggered by the wireless kernel subsystem (upon initialization
and on reception of country IEs), wireless drivers, or
userspace (see 
.B iw
). Upon a regulatory domain change the kernel sends a udev change event
for the regulatory platform. The kernel ignores regulatory domains sent
to it if it does not expect them. The regulatory domain is read by crda
from the
.B regulatory.bin
file.

.SS
.SH RSA Digital Signature
If built with openssl or gcrypt support
.B crda
will have embedded
into it an RSA digital signature which will prevent it from reading
corrupted or non-authored
.B regulatory.bin
files. Authorship is respected by the RSA public key packed into
.B crda.
.I This
specific
.B crda
package has been built with RSA public keys from
.I John Linville (the Linux wireless kernel maintainer)
and
.I Seth Forshee (the wireless regulatory databse maintainer)
and as such will only read
.B regulatory.bin
files signed by one of them. For further information see the
.B regulatory.bin
man page.

.SS
.SH UDEV RULE
A udev regulatory rule must be put in place
in order to receive and parse udev events from the kernel in order to get
udev to call crda with the passed ISO / IEC 3166 alpha2 country code.
An example udev rule which can be used (usually in
.B /lib/udev/rules.d/85-regulatory.rules
):

.I KERNEL=="regulatory*", ACTION=="change", SUBSYSTEM=="platform", RUN+="/sbin/crda"

.SS
.SH Environment variable
Set the
.B COUNTRY
environment variable with a specific ISO / IEC 3166 alpha2 country code
and then run
.B crda
without arguments. This will send a regulatory domain for that alpha2
to the kernel.

.SH SEE ALSO
.BR iw (8)
.BR regulatory.bin (5)

.BR http://wireless.kernel.org/en/developers/Regulatory/
